﻿namespace WMS6.Services
{
    using System;
    using System.Collections.Generic;
    using System.Data;
    using System.ServiceModel;
    using WMS6.Common;
    using WMS6.DataEntity;
    using WMS6.QueryEntity;

    [ServiceContract(Namespace="WMS6.Services")]
    public interface IVASServices
    {
        [OperationContract, FaultContract(typeof(FaultDetail))]
        string DeleteOperationInfo(List<string> operationIDs, PubParasInfo pubParasInfo);
        [OperationContract, FaultContract(typeof(FaultDetail))]
        string DeleteWorkCenterInfo(List<string> workCenterIDs, PubParasInfo pubParasInfo);
        [FaultContract(typeof(FaultDetail)), OperationContract]
        DataSet GetAllOperation(PubParasInfo pubParasInfo);
        [OperationContract, FaultContract(typeof(FaultDetail))]
        DataSet GetAllWorkCenter(PubParasInfo pubParasInfo);
        [FaultContract(typeof(FaultDetail)), OperationContract, ServiceKnownType(typeof(OperationQueryEntity))]
        DataSet GetOperationByQueryEntity(OperationQueryEntity operationQuery, PubParasInfo pubParasInfo);
        [OperationContract, ServiceKnownType(typeof(OperationInfo)), FaultContract(typeof(FaultDetail))]
        OperationInfo GetOperationInfoByID(string operationID, PubParasInfo pubParasInfo);
        [FaultContract(typeof(FaultDetail)), OperationContract, ServiceKnownType(typeof(WorkCenterQueryEntity))]
        DataSet GetWorkCenterByQueryEntity(WorkCenterQueryEntity workCenterQuery, PubParasInfo pubParasInfo);
        [ServiceKnownType(typeof(WorkCenterInfo)), OperationContract, FaultContract(typeof(FaultDetail))]
        WorkCenterInfo GetWorkCenterInfoByID(string workCenterID, PubParasInfo pubParasInfo);
        [OperationContract, FaultContract(typeof(FaultDetail))]
        string InsertOperationInfo(OperationInfo operationInfo, PubParasInfo pubParasInfo);
        [OperationContract, FaultContract(typeof(FaultDetail))]
        string InsertWorkCenterInfo(WorkCenterInfo workCenter, PubParasInfo pubParasInfo);
        [OperationContract, FaultContract(typeof(FaultDetail))]
        string UpdateOperationInfo(OperationInfo operationInfo, PubParasInfo pubParasInfo);
        [FaultContract(typeof(FaultDetail)), OperationContract]
        string UpdateWorkCenterInfo(WorkCenterInfo workCenter, PubParasInfo pubParasInfo);
    }
}

